""""
-------------------时间：2024/2/24早晨
-------------------天气：下过雪后的晴天，坐在窗边被阳光照的刺眼
此文件是对于在windows下使用setWindowIcon底部任务栏不显示的说明
添加：
import ctypes
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("myappid")
强制声明一遍，解决问题
"""
from PyQt5.QtGui import QIcon  # QtWidgets不包含QIcon,必须调用QtGui
from PyQt5 import QtWidgets
import ctypes

ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("myappid")


class fristwindows(QtWidgets.QWidget):  # 继承自父类QtWidgets.QWidget
    def __init__(self):
        super(fristwindows, self).__init__()  # 初始化父类QtWidgets.QWidget


# 通过super初始化父类，__init__()函数无self，若直接QtWidgets.QWidget.__init__(self)，括号里是有self的

def mainwindows():
    import sys
    app = QtWidgets.QApplication(sys.argv)
    new = fristwindows()  ##必须生成QtWidgets.QWidget对象，因为QWidget模块是所有图形界面的父类
    # new.resize(1000, 1000)  # 设置窗体大小，本行可有可无。
    new.setGeometry(300, 300, 500,
                    200)  # setGeometry()方法完成两个功能--设置窗口在屏幕上的位置和设置窗口本身的大小。它的前两个参数是窗口在屏幕上的x和y坐标。后两个参数是窗口本身的宽和高
    new.setWindowTitle(u'第一个窗口')  # 设置窗体标题，本行可有可无。
    new.setWindowIcon(
        QIcon('01.png'))  # 调用QIcon构造函数时，我们需要提供要显示的图标的路径(相对或绝对路径)。同时注意：使用QIcon类型必须导入此模块from PyQt5.QtGui import QIcon
    new.show()
    sys.exit(app.exec_())


if __name__ == "__main__":
    mainwindows()
